package com.own.component.common.em;

import com.own.base.BaseResponseCode;

import java.util.HashMap;
import java.util.Map;

/**
 * ErrorEnum
 *
 * @author 陈学礼
 * @date 2020/6/1 19:51
 */
@SuppressWarnings("all")
public enum BaiduErrorEnum implements BaseResponseCode {

    // 必要参数未传入
    No222001("222001", "param[]  is null：必要参数未传入"),
    // 参数格式错误
    No222002("222002", "param[start]  format <br>error：参数格式错误"),
    // 参数格式错误
    No222003("222003", "param[length]  format <br>error：参数格式错误"),
    // 参数格式错误
    No222004("222004", "param[op_app_id_list]  format error：参数格式错误"),
    // 参数格式错误
    No222005("222005", "param[group_id_list]  format error：参数格式错误"),
    // 参数格式错误
    No222006("222006", "group_id  format error：参数格式错误"),
    // 参数格式错误
    No222007("222007", "uid  format error：参数格式错误"),
    // 参数格式错误
    No222008("222008", "face_id  format error：参数格式错误"),
    // 参数格式错误
    No222009("222009", "quality_conf  format<br> error：参数格式错误"),
    // 参数格式错误
    No222010("222010", "user_info  format error：参数格式错误"),
    // 参数格式错误
    No222011("222011", "param[uid_list]  format error：参数格式错误"),
    // 参数格式错误
    No222012("222012", "param[op_app_id]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222013("222013", "param[image]  format <br>error：参数格式错误"),
    // 参数格式错误
    No222014("222014", "param[app_id]  format <br>error：参数格式错误"),
    // 参数格式错误
    No222015("222015", "param[image_type]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222016("222016", "param[max_face_num]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222017("222017", "param[face_field]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222018("222018", "param[user_id]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222019("222019", "param[quality_control]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222020("222020", "param[liveness_control]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222021("222021", "param[max_user_num]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222022("222022", "param[id_card_number] <br> format error：参数格式错误"),
    // 参数格式错误
    No222023("222023", "param[name]  format error：参数格式错误"),
    // 参数格式错误
    No222024("222024", "param[face_type]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222025("222025", "param[face_token]  <br>format error：参数格式错误"),
    // 参数格式错误
    No222026("222026", "param[max_star_num]  format error：参数格式错误"),
    // 验证码长度错误<br>(最小值大于最大值)
    No222027("222027", "code length param error：验证码长度错误<br>(最小值大于最大值)"),
    // 参数格式错误
    No222028("222028", "param[min_code_length] format error：参数格式错误"),
    // 参数格式错误
    No222029("222029", "param[max_code_length] format error：参数格式错误"),
    // 参数格式错误
    No222030("222030", "param[match_threshold] format error：参数格式错误"),
    // 该接口需使用<br>application/json的<br>格式进行请求
    No222200("222200", "request body should be json format：该接口需使用<br>application/json的<br>格式进行请求"),
    // 服务端请求失败
    No222201("222201", "network not available：服务端请求失败"),
    // 图片中没有人脸
    No222202("222202", "pic not has face：图片中没有人脸"),
    // 无法解析人脸
    No222203("222203", "image check fail：无法解析人脸"),
    // 从图片的url下载<br>图片失败
    No222204("222204", "image_url_download_fail：从图片的url下载<br>图片失败"),
    // 服务端请求失败
    No222205("222205", "network not availablel：服务端请求失败"),
    // 服务端请求失败
    No222206("222206", "rtse service return fail：服务端请求失败"),
    // 未找到匹配的用户
    No222207("222207", "match user is not <br>found：未找到匹配的用户"),
    // 图片的数量错误
    No222208("222208", "the number of image<br> is incorrect：图片的数量错误"),
    // face token不存在
    No222209("222209", "face token not exist：face token不存在"),
    // 人脸库中用户下的人脸数目超过限制
    No222210("222210", "the number of user's faces is beyond the limit：人脸库中用户下的人脸数目超过限制"),
    // 人脸图片添加失败
    No222300("222300", "add face fail：人脸图片添加失败"),
    // 获取人脸图片失败
    No222301("222301", "get face fail：获取人脸图片失败"),
    // 服务端请求失败
    No222302("222302", "system error：服务端请求失败"),
    // 获取人脸图片失败
    No222303("222303", "get face fail：获取人脸图片失败"),
    // 操作的用户组不存在
    No223100("223100", "group is not exist：操作的用户组不存在"),
    // 该用户组已存在
    No223101("223101", "group is already exist：该用户组已存在"),
    // 该用户已存在
    No223102("223102", "user is already exist：该用户已存在"),
    // 找不到该用户
    No223103("223103", "user is not exist：找不到该用户"),
    // group_list包含组<br>数量过多
    No223104("223104", "group_list is too large：group_list包含组<br>数量过多"),
    // 该人脸已存在
    No223105("223105", "face is already exist：该人脸已存在"),
    // 该人脸不存在
    No223106("223106", "face is not exist：该人脸不存在"),
    // uid_list包含数量过多
    No223110("223110", "uid_list is too large：uid_list包含数量过多"),
    // 目标用户组不存在
    No223111("223111", "dst group is not exist：目标用户组不存在"),
    // quality_conf格式不正确
    No223112("223112", "quality_conf format <br>error：quality_conf格式不正确"),
    // 人脸有被遮挡
    No223113("223113", "face is covered：人脸有被遮挡"),
    // 人脸模糊
    No223114("223114", "face is fuzzy：人脸模糊"),
    // 人脸光照不好
    No223115("223115", "face light is not good：人脸光照不好"),
    // 人脸不完整
    No223116("223116", "incomplete face：人脸不完整"),
    // app_list包含app数量<br>过多
    No223117("223117", "app_list is too large：app_list包含app数量<br>过多"),
    // 质量控制项错误
    No223118("223118", "quality control error：质量控制项错误"),
    // 活体控制项错误
    No223119("223119", "liveness control item <br>error：活体控制项错误"),
    // 活体检测未通过
    No223120("223120", "liveness check fail：活体检测未通过"),
    // 质量检测未通过 左眼<br>遮挡程度过高
    No223121("223121", "left eye is occlusion：质量检测未通过 左眼<br>遮挡程度过高"),
    // 质量检测未通过 右眼<br>遮挡程度过高
    No223122("223122", "right eye is occlusion：质量检测未通过 右眼<br>遮挡程度过高"),
    // 质量检测未通过 左脸<br>遮挡程度过高
    No223123("223123", "left cheek is occlusion：质量检测未通过 左脸<br>遮挡程度过高"),
    // 质量检测未通过 右脸<br>遮挡程度过高
    No223124("223124", "right cheek is <br>occlusion：质量检测未通过 右脸<br>遮挡程度过高"),
    // 质量检测未通过 下巴遮挡程度过高
    No223125("223125", "chin contour is <br>occlusion：质量检测未通过 下巴遮挡程度过高"),
    // 质量检测未通过 鼻子遮挡程度过高
    No223126("223126", "nose is occlusion：质量检测未通过 鼻子遮挡程度过高"),
    // 质量检测未通过 嘴巴<br>遮挡程度过高
    No223127("223127", "mouth is occlusion：质量检测未通过 嘴巴<br>遮挡程度过高"),
    // 参数校验初始化失败
    No222901("222901", "system busy：参数校验初始化失败"),
    // 参数校验初始化失败
    No222902("222902", "system busy：参数校验初始化失败"),
    // 参数校验初始化失败
    No222903("222903", "system busy：参数校验初始化失败"),
    // 参数校验初始化失败
    No222904("222904", "system busy：参数校验初始化失败"),
    // 接口初始化失败
    No222905("222905", "system busy：接口初始化失败"),
    // 接口初始化失败
    No222906("222906", "system busy：接口初始化失败"),
    // 缓存处理失败
    No222907("222907", "system busy：缓存处理失败"),
    // 缓存处理失败
    No222908("222908", "system busy：缓存处理失败"),
    // 缓存处理失败
    No222909("222909", "system busy：缓存处理失败"),
    // 数据存储处理失败
    No222910("222910", "system busy：数据存储处理失败"),
    // 数据存储处理失败
    No222911("222911", "system busy：数据存储处理失败"),
    // 数据存储处理失败
    No222912("222912", "system busy：数据存储处理失败"),
    // 接口初始化失败
    No222913("222913", "system busy：接口初始化失败"),
    // 接口初始化失败
    No222914("222914", "system busy：接口初始化失败"),
    // 后端服务连接失败
    No222915("222915", "system busy：后端服务连接失败"),
    // 后端服务连接失败
    No222916("222916", "system busy：后端服务连接失败"),
    // 图片尺寸太大
    No222304("222304", "image size is too large：图片尺寸太大"),
    // 当前版本不支持图片存储
    No222305("222305", "pic storage not support：当前版本不支持图片存储"),
    // 正在清理该用户组的数据
    No223128("223128", "group was deleting：正在清理该用户组的数据"),
    // 公安服务连接失败
    No222361("222361", "system busy：公安服务连接失败"),
    // 参数格式错误
    No222046("222046", "param[template_type] format error：参数格式错误"),
    // 参数格式错误
    No222101("222101", "param[merge_degree] format error：参数格式错误"),
    // 参数格式错误
    No222102("222102", "param[face_location] format error：参数格式错误"),
    // 图片非法 鉴黄未通过
    No222307("222307", "image illegal, reason: porn：图片非法 鉴黄未通过"),
    // 图片非法 含有政治敏感人物
    No222308("222308", "image illegal, reason: sensitive person：图片非法 含有政治敏感人物"),
    // 人脸融合失败 模板图质量不合格
    No222211("222211", "template image quality reject：人脸融合失败 模板图质量不合格"),
    // 人脸融合失败
    No222212("222212", "merge face fail：人脸融合失败"),
    // 人脸未面向正前方<br>（人脸的角度信息大于30度）
    No223129("223129", "face not forward：人脸未面向正前方<br>（人脸的角度信息大于30度）"),
    ;

    public static final Map<String, String> MAP = new HashMap<>();

    static {
        BaiduErrorEnum[] enums = BaiduErrorEnum.values();
        for (BaiduErrorEnum errorEnum : enums) {
            MAP.put(errorEnum.code(), errorEnum.desc());
        }
    }

    private final String code;
    private final String desc;

    BaiduErrorEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public static String getMessageByCode(String code) {
        return MAP.get(code);
    }

    /**
     * 获取返回信息
     *
     * @return 返回code
     */
    @Override
    public String code() {
        return this.code;
    }

    /**
     * 获取描述
     *
     * @return 描述
     */
    @Override
    public String desc() {
        return desc;
    }
}
